package com.captjack.bigdata.hadoop.hbase.base;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.hadoop.hbase.HbaseTemplate;
import org.springframework.stereotype.Component;

/**
 * hbase 抽象类
 * <p>
 * hbase 查询单表count方法：
 * 1.命令行方式： count 'table_name', INTERVAL => 10, CACHE => 1000；
 * 2.调用map-reduce：$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'table_name'
 * 3.hive ：数据仓库方式
 *
 * @author Capt Jack
 * @date 2018/3/6
 */
@Component
public abstract class AbstractHadoopDatabaseDao {

    /**
     * hbase 命令：
     * status   查看服务状态
     * version  查看服务版本
     * list     查看hbase数据库中所有的表结果描述
     * hbase 操作模版
     */
    private HbaseTemplate hbaseTemplate;

    /**
     * 获取操作模版
     *
     * @return hbase连接工具
     */
    protected HbaseTemplate getHbaseTemplate() {
        return hbaseTemplate;
    }

    @Autowired
    @Qualifier(value = "hbaseTemplate")
    protected void setHbaseTemplate(HbaseTemplate hbaseTemplate) {
        this.hbaseTemplate = hbaseTemplate;
    }

}
